Micron Document
`:top
In the `F33f`_`[Linux`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Linux]`_`f operating system, `!LinuxThreads`! was a partial implementation of `F33f`_`[POSIX Threads`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=POSIX_Threads]`_`f introduced in 1996. The main developer of LinuxThreads was `F33f`_`[Xavier Leroy`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Xavier_Leroy]`_`f. It has been superseded by the `F33f`_`[Native POSIX Thread Library`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Native_POSIX_Thread_Library]`_`f (NPTL).`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]

>>Contents

• `F0af`_`[Implementation`#implementation]`_`f
• `F0af`_`[References`#references]`_`f
• `F0af`_`[External links`#external-links]`_`f

-─

>>Implementation

LinuxThreads had a number of problems, mainly owing to the implementation, which used the `F33f`_`[clone`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Clone_(Linux_system_call)]`_`f system call to create a new `F33f`_`[process`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Process_(computing)]`_`f sharing the parent's `F33f`_`[address space`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Address_space]`_`f. For example, threads had distinct `F33f`_`[process identifiers`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Process_identifier]`_`f, causing problems for `F33f`_`[signal`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Signal_(computing)]`_`f handling; LinuxThreads used the signals `F33f`_`[SIGUSR1`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=SIGUSR1]`_`f and `F33f`_`[SIGUSR2`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=SIGUSR2]`_`f for inter-thread coordination, meaning these signals could not be used by programs.

To improve the situation, two competing projects were started to develop a replacement; NGPT (Next Generation POSIX Threads) and `F33f`_`[NPTL`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=NPTL]`_`f. NPTL won out and is today shipped with the vast majority of Linux systems. As of 2006, LinuxThreads may still be seen on production systems, particularly those using version 2.4 or lower of the `F33f`_`[Linux kernel`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Linux_kernel]`_`f, as NPTL requires facilities which were specifically added into the 2.6 version of the kernel for its use.

LinuxThreads was also ported to and used on FreeBSD.`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]

>>References

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f `:citerefjones2008`aJones, M. Tim (2008). `*GNU/Linux application programming`* (2nd ed.). Hingham, Mass.: Charles River Media. p. 253. `F33f`_`[ISBN`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=ISBN_(identifier)]`_`f 978-1-58450-568-6. `*The 2.6 kernel utilizes the new Native POSIX Thread Library, or NPTL (introduced in 2002), which is a higher performance implementation with numerous advantages over the older component.`*
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f LinuxThreads on FreeBSD [1] Archived 2014-08-08 at the `F33f`_`[Wayback Machine`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Wayback_Machine]`_`f

>>External links

• The LinuxThreads library, Xavier Leroy Home Page
• Linux threading models compared: LinuxThreads and NPTL, IBM 2006

`c`F0af`_`[↑ Back to top`#top]`_`f`a